﻿using MoneyManagerNET.ViewModel;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using MoneyManagerNET.Model;
using System.Collections.ObjectModel;
//using MoneyManagerNET.Model

namespace Test.ViewModel
{
 
    
    /// <summary>
    ///This is a test class for BankAccountViewModelTest and is intended
    ///to contain all BankAccountViewModelTest Unit Tests
    ///</summary>
    [TestClass()]
    public class BankAccountViewModelTest
    {


        private TestContext testContextInstance;

        /// <summary>
        ///Gets or sets the test context which provides
        ///information about and functionality for the current test run.
        ///</summary>
        public TestContext TestContext
        {
            get
            {
                return testContextInstance;
            }
            set
            {
                testContextInstance = value;
            }
        }

        #region Additional test attributes
        // 
        //You can use the following additional attributes as you write your tests:
        //
        //Use ClassInitialize to run code before running the first test in the class
        //[ClassInitialize()]
        //public static void MyClassInitialize(TestContext testContext)
        //{
        //}
        //
        //Use ClassCleanup to run code after all tests in a class have run
        //[ClassCleanup()]
        //public static void MyClassCleanup()
        //{
        //}
        //
        //Use TestInitialize to run code before running each test
        //[TestInitialize()]
        //public void MyTestInitialize()
        //{
        //}
        //
        //Use TestCleanup to run code after each test has run
        //[TestCleanup()]
        //public void MyTestCleanup()
        //{
        //}
        //
        #endregion



        //Transaction CreateTransfer() {
        //           BankAccount acc1 = new BankAccount() { Name = "acc1" };
        //           BankAccount acc2 = new BankAccount() { Name = "acc2" };


        //           Category c = new Category() { Name = "categoriya" };
        //           SubCategory sc = new SubCategory() { Name="alt categoriya",Category=c};

        //           Transaction tr = new Transaction()
        //           {
        //               FromAccount = acc1,
        //               ToAccount = acc2,
        //               Amount = 333,
        //               Category = c,
        //               SubCategory = sc
        //           };
        //           return tr;
        //       }   


/// <summary>
///A test for BankAccountViewModel Constructor
///</summary>
[TestMethod()]
public void BankAccountViewModelConstructorTest()
{
    BankAccountViewModel target = new BankAccountViewModel();
    Assert.Inconclusive("TODO: Implement code to verify target");
}

/// <summary>
///A test for DeleteCurrent
///</summary>
[TestMethod()]
[DeploymentItem("MoneyManagerNET.exe")]
public void DeleteCurrentTest()
{

    // Creation of the private accessor for 'Microsoft.VisualStudio.TestTools.TypesAndSymbols.Assembly' failed
    Assert.Inconclusive("Creation of the private accessor for \'Microsoft.VisualStudio.TestTools.TypesAndSy" +
            "mbols.Assembly\' failed");
}

/// <summary>
///A test for PromptForEditCurrent
///</summary>
[TestMethod()]
public void PromptForEditCurrentTest()
{
BankAccountViewModel target = new BankAccountViewModel(); // TODO: Initialize to an appropriate value
object o = null; // TODO: Initialize to an appropriate value
    target.PromptForEditCurrent(o);
    Assert.Inconclusive("A method that does not return a value cannot be verified.");
}

/// <summary>
///A test for PromptForNew
///</summary>
[TestMethod()]
public void PromptForNewTest()
{
BankAccountViewModel target = new BankAccountViewModel(); // TODO: Initialize to an appropriate value
object o = null; // TODO: Initialize to an appropriate value
    target.PromptForNew(o);
    Assert.Inconclusive("A method that does not return a value cannot be verified.");
}

/// <summary>
///A test for AccountBalance
///</summary>
[TestMethod()]
public void AccountBalanceTest()
{
BankAccountViewModel target = new BankAccountViewModel(); // TODO: Initialize to an appropriate value
    Decimal actual;
    actual = target.AccountBalance;
    Assert.Inconclusive("Verify the correctness of this test method.");
}

/// <summary>
///A test for DeleteCommand
///</summary>
[TestMethod()]
[DeploymentItem("MoneyManagerNET.exe")]
public void DeleteCommandTest()
{
    // Creation of the private accessor for 'Microsoft.VisualStudio.TestTools.TypesAndSymbols.Assembly' failed
    Assert.Inconclusive("Creation of the private accessor for \'Microsoft.VisualStudio.TestTools.TypesAndSy" +
            "mbols.Assembly\' failed");
}

/// <summary>
///A test for EditCommand
///</summary>
[TestMethod()]
[DeploymentItem("MoneyManagerNET.exe")]
public void EditCommandTest()
{
    // Creation of the private accessor for 'Microsoft.VisualStudio.TestTools.TypesAndSymbols.Assembly' failed
    Assert.Inconclusive("Creation of the private accessor for \'Microsoft.VisualStudio.TestTools.TypesAndSy" +
            "mbols.Assembly\' failed");
}

/// <summary>
///A test for Filter
///</summary>
[TestMethod()]
public void FilterTest()
{
BankAccountViewModel target = new BankAccountViewModel(); // TODO: Initialize to an appropriate value
BankAccountViewModel.TransactionFilter expected = null; // TODO: Initialize to an appropriate value
    BankAccountViewModel.TransactionFilter actual;
    target.Filter = expected;
    actual = target.Filter;
    Assert.AreEqual(expected, actual);
    Assert.Inconclusive("Verify the correctness of this test method.");
}

/// <summary>
///A test for FilterList
///</summary>
[TestMethod()]
public void FilterListTest()
{
BankAccountViewModel target = new BankAccountViewModel(); // TODO: Initialize to an appropriate value
    BankAccountViewModel.TransactionFilter[] actual;
    actual = target.FilterList;
    Assert.Inconclusive("Verify the correctness of this test method.");
}

/// <summary>
///A test for Model
///</summary>
[TestMethod()]
public void ModelTest()
{
BankAccountViewModel target = new BankAccountViewModel(); // TODO: Initialize to an appropriate value
object expected = null; // TODO: Initialize to an appropriate value
    object actual;
    target.Model = expected;
    actual = target.Model;
    Assert.AreEqual(expected, actual);
    Assert.Inconclusive("Verify the correctness of this test method.");
}

/// <summary>
///A test for Name
///</summary>
[TestMethod()]
public void NameTest()
{
BankAccountViewModel target = new BankAccountViewModel(); // TODO: Initialize to an appropriate value
    string actual;
    actual = target.Name;
    Assert.Inconclusive("Verify the correctness of this test method.");
}

/// <summary>
///A test for NewCommand
///</summary>
[TestMethod()]
[DeploymentItem("MoneyManagerNET.exe")]
public void NewCommandTest()
{
    // Creation of the private accessor for 'Microsoft.VisualStudio.TestTools.TypesAndSymbols.Assembly' failed
    Assert.Inconclusive("Creation of the private accessor for \'Microsoft.VisualStudio.TestTools.TypesAndSy" +
            "mbols.Assembly\' failed");
}

/// <summary>
///A test for ReconciledBalance
///</summary>
[TestMethod()]
public void ReconciledBalanceTest()
{
BankAccountViewModel target = new BankAccountViewModel(); // TODO: Initialize to an appropriate value
    Decimal actual;
    actual = target.ReconciledBalance;
    Assert.Inconclusive("Verify the correctness of this test method.");
}

/// <summary>
///A test for Selected
///</summary>
[TestMethod()]
public void SelectedTest()
{
BankAccountViewModel target = new BankAccountViewModel(); // TODO: Initialize to an appropriate value
    ITransaction actual;
    actual = target.Selected;
    Assert.Inconclusive("Verify the correctness of this test method.");
}

/// <summary>
///A test for TransactionSource
///</summary>
[TestMethod()]
public void TransactionSourceTest()
{
BankAccountViewModel target = new BankAccountViewModel(); // TODO: Initialize to an appropriate value
ObservableCollection<ITransaction> expected = null; // TODO: Initialize to an appropriate value
    ObservableCollection<ITransaction> actual;
    target.TransactionSource = expected;
    actual = target.TransactionSource;
    Assert.AreEqual(expected, actual);
    Assert.Inconclusive("Verify the correctness of this test method.");
}

/// <summary>
///A test for Transactions
///</summary>
[TestMethod()]
[DeploymentItem("MoneyManagerNET.exe")]
public void TransactionsTest()
{
    // Creation of the private accessor for 'Microsoft.VisualStudio.TestTools.TypesAndSymbols.Assembly' failed
    Assert.Inconclusive("Creation of the private accessor for \'Microsoft.VisualStudio.TestTools.TypesAndSy" +
            "mbols.Assembly\' failed");
}
    }
}
